package appapi.entity.Zhongjiao;


import appapi.common.UpdateGroup;


import appapi.entity.bridge.SectionEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.beans.BeanUtils;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * @author djq
 * @date 2023/5/29 14:23
 * @description:
 */

/**
 * 设备管理
 */
@ApiModel(value = "设备管理")
@Data
public class SectionDto {
    @ApiModelProperty(value="工段编号")
    @NotNull(message = "类别ID不能为空", groups = {UpdateGroup.class})
    @TableId(value="sect_id" ,type = IdType.AUTO)
    private Long sectId;

    /**
     * 工段名称
     */
    @ApiModelProperty(value="工段名称")
    @NotNull(message = "工段名称不能为空")
    private String sectName;

    /**
     * 工段编号
     */
    @ApiModelProperty(value="工段编号")
    @NotNull(message = "工段编号不能为空")
    private String sectNo;

    /**
     * 所属项目
     */
    @ApiModelProperty(value="所属项目")
    @NotNull(message = "所属项目不能为空")
    private Long projId;

    /**
     * 工期时间
     */
    @ApiModelProperty(value="工期时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime sectDuration;

    /**
     * 负责人
     */
    @ApiModelProperty(value="负责人")
    private String sectHead;

    /**
     * 联系电话
     */
    @ApiModelProperty(value="联系电话")
    @NotNull(message = "手机号码不能为空")
    @NotBlank(message = "手机号码不能为空")
    @Pattern(regexp = "\\d{11}", message = "手机号码必须为11位数字")
    @Length(min = 11,max = 32)
    private String sectTel;

    /**
     * 备注说明
     */

    @ApiModelProperty(value="备注说明")
    private String sectNote;

    /**
     * 创建人
     */

    @ApiModelProperty(value="创建人")
    private Long createUser;

    /**
     * 附件地址List
     */
    @ApiModelProperty(value = "附件地址List")
    private List<String> annexUrl;


    public SectionEntity Entity(){
        SectionEntity entity = new SectionEntity();
        BeanUtils.copyProperties(this,entity);
        return entity;
    }


}